public class num111 {
    public int minDepth(TreeNode root) {
        if(root == null){
            return 0;
        }
        //左子树和右子树都为空说明是叶子节点返回1
        if(root.left == null && root.right == null){
            return 1;
        }
        //遍历该节点的左右子树反回其最小深度
        int left = minDepth(root.left);
        int right = minDepth(root.right);
        //左右子树有一个为空，即left/right = 0,直接返回left + right + 1
        if(root.left == null || root.right == null){
            return left + right + 1;
        }
        //左右子树都不为空返回深度最小的 + 1
        return Math.min(left,right) + 1;
    }
}
